Data compression/decompression is utilized often in modern computing to facilitate expedited data communication. For example, the transmission of multimedia content (e.g., textual information, audio information, image information and/or video information) would take substantially longer without the use of data compression. Further to the inconvenience involved in waiting for information and quality issues involved when communicating using uncompressed data, wireless-enabled devices (e.g., cellular handsets, smart phones, tablet computers, etc.) may rely upon data compression help overcome communication and power issues. For example, the limited data transmission speed and capacity of existing wireless communication mediums, combined with limited battery life, makes compression a necessity.
Hardware and/or software configured to perform data compression/decompression in a device (e.g., codecs) consume resources as needed (e.g., processing, memory, power, etc.) during data processing. In particular, in performing data compression/decompression codecs operate using whatever system resources they need without any regard to device conditions. For example, a codec that operates in parallel mode data compression may be preconfigured to always launch eight threads in a processor of the device regardless of the actual amount of data to compress/decompress, the number of processing cores that are idle/busy, the amount of available memory, the amount of power remaining, etc. Operating without any regard for the amount of data to be processed, the condition of the device, etc. may negatively impact other operations also occurring in the device, reducing the quality of experience for the user.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications and variations thereof will be apparent to those skilled in the art.